This relates generally to integrated circuits and more particularly, to programmable integrated circuits.
Programmable integrated circuits are a type of integrated circuit that can be programmed by a user to implement a desired custom logic function. In a typical scenario, a logic designer uses computer-aided design tools to design a custom logic circuit. When the design process is complete, the computer-aided design tools generate configuration data. The configuration data is then loaded into memory elements on a programmable integrated circuit device to configure that device to perform the functions of the custom logic circuit. Such types of programmable integrated circuits are sometimes referred to as a field-programmable gate array (FPGA).
FGPAs typically include input-output (I/O) components for communicating with external devices using I/O standards such as the PCIe (Peripheral Component Interconnect Express) protocol, the IEEE 802.3 Ethernet protocol, and double data rate (DDR) external memory interface protocols. Such external interface protocols are doubling in terms of bandwidth every two to three years. On the other hand, the performance improvement of conventional FPGA routing fabric does not scale at similar rates and is limited to around 10-15% per generation, thus becoming performance bottlenecks for FPGAs.
It is within this context that the embodiments described herein arise.